This class is meant to be created together with the Shaders.
Changes how the Shader behaves based on the backend
This interface is currrently a Shader factory.
Struct that holds uniform/cbuffer information for Direct3D and OpenGL shaders. It can be any type. Its data is accessed by the ShaderVariableLayout when sendVars is called. Thus, depending on its corrensponding type, its data is uploaded to the GPU.